package com.xinzhitong.www.service;

import com.xinzhitong.www.exception.SystemMessageException;
import com.xinzhitong.www.pojo.SystemMessage;
import com.xinzhitong.www.utils.MyPageInfo;

/**
 * 消息服务
 *
 * @author 徐鑫
 */
public interface MessageService {

    /**
     * 分页获取系统消息
     *
     * @param pageNo   页码
     * @param pageSize 页大小
     * @return 系统消息列表
     * @throws SystemMessageException 系统消息异常
     */
    MyPageInfo getSystemMessage(Integer pageNo, Integer pageSize) throws SystemMessageException;

    /**
     * 分页筛选系统消息
     *
     * @param pageNo   页码
     * @param pageSize 页大小
     * @param keyWord  关键字
     * @return 系统消息列表
     * @throws SystemMessageException 系统消息异常
     */
    MyPageInfo searchSystemMessage(Integer pageNo, Integer pageSize, String keyWord) throws SystemMessageException;

    /**
     * 批量删除系统消息
     *
     * @param messageIds 系统消息id列表
     */
    void removeMessages(Integer[] messageIds);

    /**
     * 忽略系统消息
     *
     * @param messageId 系统消息id
     */
    void ignoreMessage(Integer messageId);

    /**
     * 获取最新的几条系统消息
     *
     * @param size 消息数量
     * @return 最新的几条系统消息
     */
    SystemMessage[] getNewestSystemMessage(Integer size);

    /**
     * 获取新消息数
     *
     * @return 新消息数
     */
    Integer getNumberOfSystemMessages();

}
